面向对象OOP——仿苏格拉底教学法
OOP,编程思想
首次写于2018.3.16
更新于 2024.1.22
从问题开始
惊异正是哲学家的特征(情绪),哲学开始于惊异。——苏格拉底——柏拉图《泰阿泰德篇》
哲学源于闲暇,惊异,自由。——亚里士多德《形而上学》
知识诅咒
专家盲点( expert blind spot ): 对一个事物知道得越多,就越发不记得「不知道这个事」的情形。
白马非马
《公孙龙子·白马论》
“白马非马,可乎?”曰:“可。”
曰:“何哉?”曰:“马者,所以命形也。白者,所以命色也。命色者,非命形也,故曰白马非马。”
曰:“有白马,不可谓无马也。不可谓无马者,非马也?有白马为有马,白之非马,何也?”
曰:“求马,黄、黑马皆可致。求白马,黄、黑马不可致。使白马乃马也,是所求一也,所求一者,白者不异马也。所求不异,如黄、黑马有可有不可,何也?可与不可其相非明。故黄、黑马一也,而可以应有马,而不可以应有白马,是白马之非马审矣。”
曰:“以马之有色为非马,天下非有无色之马也。天下无马,可乎?”
曰:“马固有色,故有白马。使马无色,有马如已耳,安取白马?故白者非马也。白马者,马与白也;马与白马也,故曰:白马非马也。
曰:“马未与白为马,白未与马为白。合马与白,复名白马,是相与以不相与为名,未可。故曰:白马非马,未可。”
曰:“以有白马为有马,谓有白马为有黄马,可乎?”曰:“未可。”曰:“以有马为异有黄马,是异黄马于马也。异黄马于马,是以黄马为非马。以黄马为非马,而以白马为有马;此飞者入池,而棺椁异处;此天下之悖言乱辞也。”
曰:“有白马,不可谓无马者,离白之谓也。是离者有白马不可谓有马也。故所以为有马者,独以马为有马耳,非有白马为有马。故其为有马也,不可以谓马马也。”
曰:“白者不定所白,忘之而可也。白马者,言定所白也。定所白者,非白也。马者无去取于色,故黄、黑皆所以应。白马者,有去取于色,黄、黑马皆所以色去,故唯白马独可以应耳。无去者非有去也。故曰:白马非马。”
白马是马吗?为什么?
这里的「是」是什么意思?
白马与马分别代表什么?白马与马是什么关系?
可以画个简图描述下它们的结构层次关系吗?最顶层是什么?
为何要区分万事万物?
is it just a name?
名可名?只是个名字?
为了方便什么?
思考的本质是什么?
没有语言能产生思想吗?
抽象的本质是什么?有什么好处?
Duck Typing(鸭子类型)
如果一只鸟看起来像鸭子,走起来像鸭子,叫起来像鸭子,那么是否可以把它当作鸭子?
类型重要吗?为什么?
概念和属性,名与质的关系
共识,集体想象(name, meme)
人类简史,国家,公司的概念
「国家」、「公司」实际存在吗?
公司,换螺丝钉,
can we build abstract entities or abstract objects in our mind or in some storage medium(such as a paper or a computer)?
我们能在我们脑海中或者任何存储介质(如一张纸或一台计算机)上创建抽象实体或者说抽象对象吗?
可以把共享同一语言的人看作是一个巨大的抽象计算机,把每个使用这门语言交流的人看作这个计算机的一个零部件吗?
(to SF fans :能联想起某些科幻作品中的描述吗?)
联想:年轻人为什么喜欢制造和使用新词?
构建共同体,抱团,排斥异类?
标签
理发师悖论(自指)
Python OOP 示例
对于Python解释器(后面简称为小派)来说,一个对象即内存里的一块区域,可以存放数据、操作等等。由于内存空间有限,一般情况下,如果你没有给一个对象取名,小派会在一段时间后忘掉它。为了方便,小派给每个对象分配一个id号,可以使用id()函数查询。另外,聪明的小派会自动为每个对象标记一个类型,使用type()函数查询。
取名的语法是:
name = object
# example
a = 1
type(a) # => <class 'int'>
id(a) # => 1665101280
抽离视角
问关于白马非马这样的问题
相当于带领人抽离自身(主观)视角
观察人是如何起名和分类的
这个第三方视角,可以促进概念层,思想框架的清晰化
对于懂OOP编程的朋友来说,基本问题想必都是小CASE,然而对于尚未入门的人来说,这些问题正是引导至这个方向的好问题(来自我过去的哲学学习经验。。)。